package com.desksoft.ecommerce.helper.mall;

import com.desksoft.ecommerce.constants.Constants;
import com.desksoft.ecommerce.util.holder.ApplicationContextHolder;
import com.desksoft.ecommerce.vo.mall.MallSessionUserVO;
import com.desksoft.ecommerce.vo.mall.MallSiteInfoVO;
import com.desksoft.ecommerce.vo.mall.MallUserInfoVO;
import com.desksoft.utility.cache.DelegateMemcache;

/**
 * 
 * 获取用户编码
 *    
 * @author zhenggx
 *
 */
public class UserObjectHelper {
	/**
	 * 得到用户对象
	 * @param key
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static  <T> T getUserObject(String key){
		DelegateMemcache cache  = 	ApplicationContextHolder.get("memcache");
		//MallSiteInfoVO svo = SiteinfoHelper.getInstance();
		Object u = cache.get(Constants.MALL_COOKIE_LOGININFO + key) ;
		if(null == u )
			return null ;
			//b2c的形式
		if(u instanceof MallUserInfoVO){
			return (T) u;
			////b2b的形式
		}else if (u instanceof MallSessionUserVO) {
			return (T) u;
		}
		return null ;
	}
	
	/**
	 * 得到用户编码
	 * @param key sessionID
	 * @return
	 */
	public static  String getUserCode(String key){
		MallSiteInfoVO svo = SiteinfoHelper.getInstance();
		//b2b的形式
		if(Constants.SYS_TYPE_B2B.equals(svo.getSystype())){
			MallSessionUserVO user = getUserObject(key);
			if (null != user) {
				return user.getClientInfo().getClientcode();
			}
			//b2c的形式
		}else  if(Constants.SYS_TYPE_B2C.equals(svo.getSystype())){
			MallUserInfoVO user =  getUserObject(key);
			if(user!=null){
				return user.getVipCardVO().getCardno();
			}
		}
		return "" ;
	}
	
	/**
	 * 得到用户类型
	 * @param key sessionID
	 * @return B 代表B2B C代表B2C
	 */
	public static  String getUserType(){
		MallSiteInfoVO svo = SiteinfoHelper.getInstance();
		//b2b的形式
		if(Constants.SYS_TYPE_B2B.equals(svo.getSystype())){
			String temp = Constants.SYS_TYPE_B2B ;
			return temp.substring(temp.length() -1);
		//b2b的形式
		}else  if(Constants.SYS_TYPE_B2C.equals(svo.getSystype())){
			String temp = Constants.SYS_TYPE_B2C ;
			return temp.substring(temp.length() -1);
		}
		return "" ;
	}
	
	
}
